package com.zkh.myutils.io.excel.opcpack;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**
 * 节点元素操作类
 * @author zkh
 */
public class ElementOperate {
	
	//文档对象
	private Document document;
	
	/**
	 * 注入文档对象
	 * @param document 文档对象
	 */
	public void injectDocument(Document document) {
		this.document = document;
	}

	
	/**
	 * 创建节点并设置属性，并追加到parent对象上
	 * @param parent 父节点
	 * @param noteName 节点名称
	 * @param keyValues 属性名和值
	 */
	public Element createWithAttrs(Element parent, String noteName, String... keyValues) {
		//创建元素对象
		Element elem = document.createElement(noteName);
		//遍历设置属性
		for(int i=0,len=keyValues.length; i<len-1; i+=2) {
			elem.setAttribute(keyValues[i], keyValues[i+1]);
		}
		//添加节点
		parent.appendChild(elem);
		//返回创建的对象
		return elem;
	}
	
	/**
	 * 创建多个节点并追加到parent对象上
	 * @param parent 父节点
	 * @param noteNames 多个节点名称
	 */
	public void createElements(Element parent, String... noteNames) {
		//遍历
		for(String noteName: noteNames) {
			parent.appendChild(document.createElement(noteName));
		}
	}
	
	/**
	 * 创建节点并设置val属性，并追加到parent对象上
	 * @param parent 父节点
	 */
	public void createElementsWithVal(Element parent, String... noteNameVals) {
		//遍历设置属性
		for(int i=0,len=noteNameVals.length; i<len-1; i+=2) {
			createWithAttrs(parent, noteNameVals[i], "val", noteNameVals[i+1]);
		}
	}
}
